With virtual machine technology, a user can create and run multiple operating environments on a server at the same time. Each operating environment, or virtual machine, requires its own “guest” operating system (OS) and can run software applications independently from the other virtual machines. Virtual machine technology provides many benefits as it can lower information technology (IT) costs through increased efficiency, flexibility and responsiveness. Each virtual machine acts as a separate environment that reduces risks and allows developers to quickly recreate different OS configurations or compare versions of applications designed for different OSs. Additional customer uses for VMs include cloud services, targeted production server consolidation, hosting of legacy applications (older versions), and computer or server backup.
Virtual machine technology requires employing hardware of a real physical machine or a processor for support of a VM. A hardware element that is increasingly used for acceleration of physical machines is a Graphics Processing Unit (GPU). General-purpose computing on graphics processing units (GPGPU, also referred to as GPGP) is a technique of employing the GPU, which typically handles only computations related to rendering computer graphics for output to a display device, for performing computations for other applications traditionally handled by the CPU.
However, there are an increasing number of lightweight computers in use which do not have a discrete GPU or graphics card. For example, netbooks, thin client laptops (e.g., Chromebooks™ made available by Google®), and other subnotebook computers (e.g., MacBook Air® made available by Apple®) may lack a discrete GPU due to the GPU's high power consumption and thermal properties. In other examples, some desktop computers and servers may lack a discrete GPU or graphics card because of the increased cost to equip such hardware. As such, a user cannot use this type of hardware to run a virtual machine with user software that has an intensive GPU usage, or run host software with intensive GPU usage.
Therefore, it is desirable to support general-purpose computing on graphics processing units (GPGPU) for virtual machines running on a physical machine without a discrete GPU. Accordingly, there is a need in the art for a system and method that addresses the need for supporting GPGPU for VMs executing in lightweight computers without discrete GPUs.